#include <iostream>
using namespace std;


class Vehicle
{
    public:
        virtual void run() const{cout<<"Vehicle run\n";}  
};
class Bicycle:public Vehicle
{
    public:
        void run() const{cout<<"Bicycle run\n";}
};
class Motorcar:public Vehicle
{
    public:
        void run() const{cout<<"Motorcar run\n";}
};

template<typename T>
void run(T a)
{
    a.run();
}


int main(int argc, char const *argv[])
{
    Vehicle veh;
    Bicycle bic;
    Motorcar mot;
    run(veh);
    run(bic);
    run(mot);
    return 0;
}
